﻿/*-------------------------------------
//
//Copyright (C) 2007 开发二组 版权所有。
//
//文件名：ProductService.cs
//
//文件功能描述：商品及类别管理的外观
// 
//创建标识：2007.11.16 张晓磊
//创建描述：
// 
//修改标识：2007.11.18 殷悦
//修改描述：根据业务逻辑层修改部分方法
//
//修改标识：2007.11.28 王林进 
//修改描述：根据外观层添加两个方法
 //
 //
//修改标识：2007.11.29 王志平 
//修改描述：增加了对商品总数的统计(各种类型,图片总数)方法;

//修改标识：2007.11.19 王勇
//修改描述：加了描述，还有修改了方法(改成了能分页的)
//
//修改标识： 2007.11.29  施欢
//修改描述： 修改AddProduct()的返回值，添加DeleteProductImage()
//
//修改标识：2007.11.30  王林进
//修改描述：添加用于计量单位分页的方法
//
//修改标识： 2007.11.30  施欢
//修改描述： 添加了GetImage()方法 

//修改标识：2007.12.03  王林进
//修改描述：添加并修改用于类别分页的方法
//------------------------------------*/
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using JXMSTC.SmartBusiness.BFL.BLLFactory;
using JXMSTC.SmartBusiness.BFL.IBLL;
using System.Data;
using JXMSTC.SmartBusiness.Common.Model;


/// <summary>de
/// ProductService 的摘要说明
/// </summary>
[SoapDocumentService(RoutingStyle = SoapServiceRoutingStyle.RequestElement)] 
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class ProductService : System.Web.Services.WebService
{
    private readonly IProduct bll = BLLAccess.CreateProduct();
    public ProductService()
    {

        //如果使用设计的组件，请取消注释以下行 
        //InitializeComponent() 
    }

    /// <summary>
    /// 添加新的商品
    /// </summary>
    /// <param name="productModel">商品model</param>
    /// <returns></returns>
    [WebMethod(Description = "添加新的商品")]
    public string AddProduct(Product productModel,byte[] imageInfo)
    {
        return bll.AddProduct(productModel,imageInfo);
    }

    /// <summary>
    /// 添加商品图片
    /// </summary>
    /// <param name="imageID">图片ID</param>
    /// <param name="productID">商品ID</param>
    /// <param name="image">图片信息</param>
    /// <returns></returns>
    [WebMethod(Description = "添加商品图片")]
    public bool AddProductImage(string productID, byte[] image)
    {
        return bll.AddProductImage(productID,image);
    }
    
    /// <summary>
    /// 根据图片ID获取图片记录
    /// </summary>
    /// <param name="imageID">图片ID</param>
    /// <returns>成功时返回图片Model的实例,失败时返回空实例</returns>
    [WebMethod(Description = "根据图片ID获取图片记录")]
    public JXMSTC.SmartBusiness.Common.Model.Image GetImage(int imageID)
    {
        return bll.GetImage(imageID);
    }

    /// <summary>
    /// 修改商品图片信息
    /// </summary>
    /// <param name="imageID">图片ID</param>
    /// <param name="productID">商品ID</param>
    /// <param name="image">图片信息</param>
    /// <returns></returns>
    [WebMethod(Description = "修改商品图片信息")]
    public bool UpdateProductImage(int imageID, string productID, byte[] image)
    {
        return bll.UpdateProductImage(imageID, productID, image);
    }


    /// <summary>
    /// 删除商品图片
    /// </summary>
    /// <param name="imageID">图片编号</param>
    /// <returns>删除成功返回True,失败返回False</returns>
    [WebMethod(Description = "删除商品图片信息")]
    public bool DeleteProductImage(int imageID)
    {
        return bll.DeleteProductImage(imageID);
    }
    
    /// <summary>
    /// 搜索商品
    /// </summary>
    /// <param name="pageSize">页大小</param>
    /// <param name="pageIndex">当前页索引</param>
    /// <param name="strProductName">商品名称(可以为空)</param>
    /// <param name="strLowerCategoryID">商品小类别编号</param>
    /// <returns>符合条件的商品列表（ProductID,Name,SalesPrice,Status,CreationTime）</returns>
    [WebMethod(Description = "搜索商品")]
    public DataSet GetProduct(int pageSize,int pageIndex,string strProductName, string strLowerCategoryID)
    {
        return bll.GetProduct(pageSize,pageIndex,strProductName, strLowerCategoryID);
    }

    /// <summary>
    /// 获取指定条件下的商品总数
    /// </summary>
    /// <param name="strProductName">商品名称(可以为空)</param>
    /// <param name="strLowerCategoryID">商品小类别编号(可以为空)</param>
    /// <returns>返回指定条件下的商品总数</returns>
    [WebMethod(Description = "获取指定条件下的商品总数")]
    public int GetProductRows(string strProductName, string strLowerCategoryID)
    {
        return bll.GetProductRows(strProductName,strLowerCategoryID);
    }

    /// <summary>
    /// 商品管理
    /// </summary>
    /// <param name="productModel">商品model</param>
    /// <returns></returns>
    [WebMethod(Description = "商品管理")]
    public bool ManageProduct(Product productModel)
    {
        return bll.ManageProduct(productModel);
    }

    /// <summary>
    /// 根据商品ID获取商品信息（后台使用）
    /// </summary>
    /// <param name="strproductID">商品编号</param>
    /// <returns>商品model</returns>
    [WebMethod(Description="根据商品ID获取商品信息（后台使用）")]
    public Product GetProductModelByID(string strProductID)
    {
        return bll.GetProductModelByID(strProductID);
    }

    /// <summary>
    /// 删除商品，为逻辑删除，即修改商品的状态为“下架”
    /// </summary>
    /// <param name="strProductID">商品编号</param>
    /// <returns>成功返回true，失败返回false</returns>
    [WebMethod(Description = "删除商品，为逻辑删除，即修改商品的状态为“下架”")]
    public bool DeleteProduct(string strProductID)
    {
        return bll.DeleteProduct(strProductID);
    }


    /// <summary>
    /// 添加商品类别
    /// </summary>
    /// <param name="strName">类别名称</param>
    /// <param name="strParentCategoryID">父级类编号（为空时表示添加大类别，非空时表示添加小类别）</param>
    /// <returns>成功时返回true,失败时返回false</returns>
    [WebMethod(Description = "添加商品类别")]
    public bool AddCategory(string strName, string strParentCategoryID)
    {
         return bll.AddCategory(strName, strParentCategoryID);
    }

    /// <summary>
    /// 搜索商品大类别
    /// </summary>
    /// <param name="strName">商品大类别名称（可以为空）</param>
    /// <param name="strStatus">大类别状态</param>
    /// <returns>符合条件的大类别列表（编号，名称，状态）</returns>
    [WebMethod(Description = "搜索商品大类别")]
    public DataSet GetUpperCategory(string strName, bool blStatus)
    {
        return bll.GetUpperCategory(strName, blStatus);
    }

    /// <summary>
    /// 搜索商品小类别
    /// </summary>
    /// <param name="strName">商品小类别名称</param>
    /// <param name="strStatus">小类别状态</param>
    /// <returns>符合条件的小类别列表（编号，名称，状态）</returns>
    [WebMethod(Description="搜索商品小类别")]
    public DataSet GetLowerCategory(string strName, bool blStatus)
    {
        return bll.GetLowerCategory(strName, blStatus);
    }

    /// <summary>
    /// 获取大类别的实例
    /// </summary>
    /// <param name="upperCategoryID">大类别编号</param>
    /// <returns></returns>
    [WebMethod(Description="获取大类别的实例")]
    public UpperCategory GetUpperCategoryModel(string upperCategoryID)
    {
        return bll.GetUpperCategoryModel(upperCategoryID);
    }

    /// <summary>
    /// 获取小类别实例
    /// </summary>
    /// <param name="lowerCategoryID">小类别编号</param>
    /// <returns></returns>
    [WebMethod(Description="获取小类别实例")]
    public LowerCategory GetLowerCategoryModel(string lowerCategoryID)
    {
        return bll.GetLowerCategoryModel(lowerCategoryID);
    }

    /// <summary>
    /// 删除商品大类别，为逻辑删除（修改状态为“停用”）
    /// </summary>
    /// <param name="strCategoryID">类别编号</param>
    /// <returns>成功返回true，失败返回false</returns>
    [WebMethod(Description="删除商品大类别，为逻辑删除（修改状态为“停用”）")]
    public bool DeleteUpperCategory(string strCategoryID)
    {
        return bll.DeleteUpperCategory(strCategoryID);
    }

    /// <summary>
    /// 删除小类别
    /// </summary>
    /// <param name="strCategoryID">类别编号</param>
    /// <returns>成功返回true，失败返回false</returns>
    [WebMethod(Description="删除小类别")]
    public bool DeleteLowCategory(string strCategoryID)
    {
        return bll.DeleteLowCategory(strCategoryID);
    }

    /// <summary>
    /// 修改商品类别信息
    /// </summary>
    /// <param name="strName">类别名称</param>
    /// <param name="strCategoryID">商品类别编号</param>
    /// <param name="strParentCategoryID">父类别编号</param>
    /// <returns>成功返回true，失败返回false</returns>
    [WebMethod(Description="修改商品类别信息")]
    public bool ManageCategory(string strName, string strCategoryID, string strParentCategoryID)
    {
        return ManageCategory(strName, strCategoryID, strParentCategoryID);
    }

    /// <summary>
    ///  商品入库
    /// </summary>
    /// <param name="model">库存model,一条库存记录</param>
    /// <returns>成功返回true，失败返回false</returns>
    [WebMethod(Description="商品入库")]
    public bool AddInventory(string lowerCategoryID, string productName, int inventoryNum,int iStaffID)
    {
        return bll.AddInventory(lowerCategoryID, productName, inventoryNum, iStaffID);
    }

    /// <summary>
    /// 查找商品库存信息
    /// </summary>
    /// <param name="strProductCategoryID">商品类别编号</param>
    /// <param name="strProductName">商品名称，为空时查找指定类别的所有商品的库存信息</param>
    /// <returns>商品库存信息（库存编号，商品编号，商品名，库存量，操作时间，管理员）</returns>
    [WebMethod(Description="查找商品库存信息")]
    public DataSet GetInventory(string strProductCategoryID, string strProductName)
    {
        return bll.GetInventory(strProductCategoryID, strProductName);
    }

    /// <summary>
    /// 删除库存记录
    /// </summary>
    /// <param name="strInventoryID">库存记录编号</param>
    /// <returns>成功返回true，失败返回false</returns>
    [WebMethod(Description="删除库存记录")]
    public bool DeleteInventory(string strInventoryID)
    {
        return bll.DeleteInventory(strInventoryID);
    }

    /// <summary>
    /// 获取所有的计量单位列表
    /// </summary>
    /// <returns>返回所有的计量单位</returns>
    [WebMethod(Description = "获取所有的计量单位列表")]
    public DataSet GetUnit()
    {
        return bll.GetUnit();
    }

    /// <summary>
    /// 添加计量单位
    /// </summary>
    /// <param name="unitModel">计量单位model</param>
    /// <returns>成功返回true，失败返回false</returns>
    [WebMethod(Description="添加计量单位")]
    public bool AddUnit(JXMSTC.SmartBusiness.Common.Model.Unit unitModel)
    {
        return bll.AddUnit(unitModel);
    }

    /// <summary>
    /// 修改计量单位
    /// </summary>
    /// <param name="unitModel">计量单位model</param>
    /// <returns>成功返回true，失败返回false</returns>
    [WebMethod(Description="修改计量单位")]
    public bool UpdateUnit(JXMSTC.SmartBusiness.Common.Model.Unit unitModel)
    {
        return bll.UpdateUnit(unitModel);
    }

    /// <summary>
    /// 删除计量单位
    /// </summary>
    /// <param name="strUnitID">计量单位编号</param>
    /// <returns>成功返回true，失败返回false</returns>
    [WebMethod(Description="删除计量单位")]
    public bool DeleteUnit(int iUnitID)
    {
        return bll.DeleteUnit(iUnitID);
    }

    /// <summary>
    /// 获取不同类型的商品列表,该表中的字段有:商品ID，商品名称，商品图片，价格，描述，详细介绍，计量单位，浏览次数等
    /// </summary>
    /// <param name="iPageSize">页大小</param>
    /// <param name="iPageIndex">当前页索引</param>
    /// <param name="productType">商品类型,string类型,如:最新商品，推荐商品，热卖商品，特价商品等</param>
    /// <param name="strOrderName">排序字段,string类型</param>
    /// <returns>返回一个商品列表DataSet类型</returns>
    [WebMethod(Description = "获取不同类型的商品列表,该表中的字段有:商品ID，商品名称，商品图片，价格，描述，详细介绍，计量单位等")]
    public System.Data.DataSet GetProductListByProductType(int iPageSize, int iPageIndex, string productType,string strOrderName)
    {
        return bll.GetProductListByProductType(iPageSize,iPageIndex,productType,strOrderName);
    }


    /// <summary>
    /// 根据商品的类别,获取该类别所对应商品的总数.
    /// </summary>
    /// <param name="productType">商品类型,string类型,如:最新商品，推荐商品，热卖商品，特价商品等</param>
    /// <returns>返回传入的商品类别所对应的商品总数.</returns>
    [WebMethod(Description = "根据商品的类别,获取该类别所对应商品的总数")]
    public int GetProductCoutByProductTyppe(string productType)
    {
        return bll.GetProductCoutByProductTyppe(productType);
    }

    /// <summary>
    /// 获取不同类型的商品前8件商品列表,该表中的字段有:商品ID，商品名称，商品图片，价格，描述，详细介绍，计量单位，浏览次数等
    /// </summary>
    /// <param name="productType">商品类型,string类型,如:最新商品，推荐商品，热卖商品，特价商品等</param>
    /// <returns>返回一个商品列表DataSet类型</returns>
    [WebMethod(Description = "获取不同类型的商品前8件商品列表,该表中的字段有:商品ID，商品名称，商品图片，价格，描述，详细介绍，计量单位等")]
    public DataSet GetProductListByProductTypeTop8(string productType)
    {
        return bll.GetProductListByProductTypeTop8(productType);
    }

    /// <summary>
    /// 根据商品ID获取商品信息
    /// </summary>
    /// <param name="productID">商品ID,string类型</param>
    /// <returns>返回一个V_Product类型</returns>
    [WebMethod(Description = "根据商品ID获取商品信息")]
    public V_Product GetProductInfoByProductID(string productID)
    {
        return bll.GetProductInfoByProductID(productID);
    }

    /// <summary>
    /// 根据商品ID获取该商品的图片列表
    /// </summary>
    /// <param name="iPageSize">页大小</param>
    /// <param name="iPageIndex">当前页索引</param>
    /// <param name="productID">商品ID,string类型</param>
    /// <returns>返回一个DataSet</returns>
    [WebMethod(Description = "根据商品ID获取该商品的图片列表")]
    public System.Data.DataSet GetProductImageListByProductID(int iPageSize, int iPageIndex, string productID)
    {
        return bll.GetProductImageListByProductID(iPageSize, iPageIndex, productID);
    }

    /// <summary>
    /// 根据商品ID获得商品图片总数.
    /// </summary>
    /// <param name="productID">商品的ID</param>
    /// <returns>返回图片总数</returns>
    [WebMethod(Description = "根据商品ID获得商品图片总数")]
    public int GetProductImageCountByProductID(string productID)
    {
        return bll.GetProductImageCountByProductID(productID);
    }

    /// <summary>
    /// 获取所有大类别的列表,字段有类别ID,类别名称
    /// </summary>
    /// <returns>返回一个DataSet类型</returns>
    [WebMethod(Description = "获取所有大类别的列表,字段有类别ID,类别名称")]
    public DataSet GetUpperCategoryList()
    {
        return bll.GetUpperCategoryList();
    }

    /// <summary>
    /// 根据大类别的ID获取该大类别下的小类别列表,字段有类别ID,类别名称
    /// </summary>
    /// <param name="upperCategoryID">大类别ID,string类型</param>
    /// <returns>返回一个DataSet类型</returns>
    [WebMethod(Description = "根据大类别的ID获取该大类别下的小类别列表,字段有类别ID,类别名称")]
    public DataSet GetLowCategoryListByUpperCategoryID(string upperCategoryID)
    {
        return bll.GetLowCategoryListByUpperCategoryID(upperCategoryID);
    }

    /// <summary>
    /// 无条件获取所有小类别列表
    /// </summary>
    /// <returns></returns>
    [WebMethod(Description = "无条件获取所有小类别列表")]
    public DataSet GetLowCategoryList()
    {
        return bll.GetLowCategoryList();
    }
    /// <summary>
    /// 返回所有商品的列表,该表中的字段有:商品ID，商品名称，商品图片，价格，描述，详细介绍，计量单位，浏览次数等
    /// </summary>
    /// <param name="iPageSize">页大小</param>
    /// <param name="iPageIndex">当前页索引</param>
    /// <param name="strOrderName">排序字段,string类型</param>
    /// <returns>返回一个DataSet类型</returns>
    [WebMethod(Description = "返回所有商品的列表,该表中的字段有:商品ID，商品名称，商品图片，价格，描述，详细介绍，计量单位等")]
    public System.Data.DataSet GetAllProductList(int iPageSize, int iPageIndex,string strOrderName)
    {
        return bll.GetAllProductList(iPageSize,iPageIndex,strOrderName);
    }


    /// <summary>
    /// 返回所有商品的总数目
    /// </summary>
    /// <returns>返回所有商品的总数目</returns>
    [WebMethod(Description = "返回所有商品的总数目")]
    public int GetAllProductCount()
    {
        return bll.GetAllProductCount();
    }

    /// <summary>
    /// 根据类别ID获取该类别下的所有商品列表,该表中的字段有:商品ID，商品名称，商品图片，价格，描述，详细介绍，计量单位，浏览次数等
    /// </summary>
    /// <param name="iPageSize">页大小</param>
    /// <param name="iPageIndex">当前页索引</param>
    /// <param name="strCategoryID">类别ID,string类型</param>
    /// <returns>返回一个DataSet类型</returns>
    [WebMethod(Description = "根据类别ID获取该类别下的所有商品列表,该表中的字段有:商品ID，商品名称，商品图片，价格，描述，详细介绍，计量单位等")]
    public System.Data.DataSet GetProductListByCategoryID(int iPageSize, int iPageIndex, string strCategoryID)
    {
        return bll.GetProductListByCategoryID(iPageSize, iPageIndex, strCategoryID);
    }
    /// <summary>
    /// 根据类别ID(大类别ID,小类别ID)获取该大类别下的所有商品总数
    /// </summary>
    /// <param name="strCategoryTypeID">大类别ID或小类别ID</param>
    /// <returns>商品数目</returns>
    [WebMethod(Description = "根据类别ID(大类别ID,小类别ID)获取该大类别下的所有商品总数")]
    public int GetProductCountByCategoryID(string strCategoryTypeID)
    {
        return bll.GetProductCountByCategoryID(strCategoryTypeID);
    }
    /// <summary>
    /// 根据小类别ID获取该小类别下的所有商品列表,该表中的字段有:商品ID，商品名称，商品图片，价格，描述，详细介绍，计量单位，浏览次数等
    /// </summary>
    /// <param name="lowCategoryID">小类别ID,string类型</param>
    /// <returns>返回一个DataSet类型</returns>
    [WebMethod]
    public DataSet GetProductListByLowCategoryID(string lowCategoryID)
    {
        return bll.GetProductListByLowCategoryID(lowCategoryID);
    }

    /// <summary>
    /// 根据范围跟关键字搜索商品列表,该表中的字段有:商品ID，商品名称，商品图片，价格，描述，详细介绍，计量单位等
    /// </summary>
    /// <param name="iPageSize">页大小</param>
    /// <param name="iPageIndex">当前页索引</param>
    /// <param name="condition">范围,string类型,一般是类别可以是大类别，也可以是小类别，默认是所有类别</param>
    /// <param name="key">关键字,string类型</param>
    /// <returns></returns>
    [WebMethod(Description = "根据范围跟关键字搜索商品列表,该表中的字段有:商品ID，商品名称，商品图片，价格，描述，详细介绍，计量单位等")]
    public System.Data.DataSet SeracherProductListByConditionAndKey(int iPageSize, int iPageIndex, string condition, string key)
    {
        return bll.SeracherProductListByConditionAndKey(iPageSize, iPageIndex, condition, key);
    }


    /// <summary>
    /// 根据范围跟关键字搜索商品列表总记录值
    /// </summary>
    /// <param name="condition">范围,string类型,一般是类别可以是大类别，也可以是小类别，默认是所有类别</param>
    /// <param name="key">关键字,string类型</param>
    /// <returns></returns>
    [WebMethod(Description = "根据范围跟关键字搜索商品列表总记录值")]
    public int SeracherProductCountByConditionAndKey(string condition, string key)
    {
        return bll.SeracherProductCountByConditionAndKey(condition, key);
    }

    /// <summary>
    /// 高级搜索商品列表,该表中的字段有:商品ID，商品名称，商品图片，价格，描述，详细介绍，计量单位，浏览次数等
    /// </summary>
    /// <param name="iPageSize">页大小</param>
    /// <param name="iPageIndex">当前页索引</param>
    /// <param name="fldName">关键字所在字段,string类型</param>
    /// <param name="scope">范围,string类型,一般是类别可以是大类别，也可以是小类别，默认是所有类别</param>
    /// <param name="key">关键字,string类型</param>
    /// <param name="lowPrice">最低价,decimal类型</param>
    /// <param name="highPrice">最高价,decimal类型</param>
    /// <returns></returns>
    [WebMethod(Description = "高级搜索商品列表,该表中的字段有:商品ID，商品名称，商品图片，价格，描述，详细介绍，计量单位等")]
    public System.Data.DataSet AdvanceSeracherProductList(int iPageSize, int iPageIndex, string fldName, string scope, string key, decimal lowPrice, decimal highPrice)
    {
        return bll.AdvanceSeracherProductList(iPageSize,iPageIndex,fldName, scope, key, lowPrice, highPrice);
    }


    /// <summary>
    /// 高级搜索商品列表记录总数
    /// </summary>
    /// <param name="fldName">关键字所在字段,string类型</param>
    /// <param name="scope">范围,string类型,一般是类别可以是大类别，也可以是小类别，默认是所有类别</param>
    /// <param name="key">关键字,string类型</param>
    /// <param name="lowPrice">最低价,decimal类型</param>
    /// <param name="highPrice">最高价,decimal类型</param>
    /// <returns></returns>
    [WebMethod(Description = "高级搜索商品列表记录总数")]
    public int AdvanceSeracherProductCount(string fldName, string scope, string key, decimal lowPrice, decimal highPrice)
    {
        return bll.AdvanceSeracherProductCount(fldName, scope, key, lowPrice, highPrice);
    }

    /// <summary>
    /// 修改大类别的状态 
    /// </summary>
    /// <param name="upperCategoryID">大类别的ID</param>
    /// <param name="upperCategoryStatus">大类别的状态</param>
    /// <returns>返回布尔类型的值。true表示修改成功，反之亦然</returns>
    [WebMethod(Description = "通过大类别的ID号，修改大类别的状态 ")]
    public bool UpdateUpperCagegoryStatus(string upperCategoryID, bool upperCategoryStatus)
    {
        return bll .UpdateUpperCategoryStatus (upperCategoryID ,upperCategoryStatus);
    }
    /// <summary>
    /// 修改小类别的状态
    /// </summary>
    /// <param name="lowerCategoryID">小类别的ID</param>
    /// <param name="lowerCategoryStatus">小类别的状态</param>
    /// <returns>返回布尔类型的值。true表示修改成功，反之亦然</returns>
    [WebMethod(Description = "通过小类别的ID号，修改小类别的状态 ")] 
    public bool UpdateLowerCategoryStatus(string lowerCategoryID, bool lowerCategoryStatus)
    {
        return bll.UpdateLowerCategoryStatus(lowerCategoryID, lowerCategoryStatus);
    }

    /// <summary>
    /// 根据两个参数获得计量单位列表分页数据集
    /// </summary>
    /// <param name="iPageSize">页面记录数</param>
    /// <param name="iPageIndex">当前页</param>
    /// <returns>返回计量单位数据集</returns>
    [WebMethod (Description ="计量单位分页")]
    public DataSet GetUnitForPaging(int iPageSize, int iPageIndex)
    {
        return bll.GetUnitForPaging(iPageSize, iPageIndex);
    }

    /// <summary>
    /// 获得计量单位的行数
    /// </summary>
    /// <returns>返回计量单位的行数</returns>
    [WebMethod(Description = "获得计量单位的记录数")]
    public int GetUnitRows()
    {
        return bll.GetUnitRows();
    }
    

    /// <summary>
    /// 根据参数获得大类别列表分页数据集
    /// </summary>
    /// <param name="iPageSize">页面记录数</param>
    /// <param name="iPageIndex">当前页</param>
    /// <param name="UpperCategoryName">大类别的名称</param>
    /// <param name="UpperStatus">大类别的状态</param>
    /// <returns>返回大类别数据集</returns>
    [WebMethod(Description = "根据参数把大类别分页")]
    public DataSet GetUpperCategoryForPaging(int iPageSize, int iPageIndex, string strUpperCategoryName, string strUpperStatus)
    {
        return bll.GetUpperCategoryForPaging(iPageSize, iPageIndex, strUpperCategoryName, strUpperStatus);
    }



    /// <summary>
    ///根据参数获得大类别的行数
    /// </summary>
    /// <param name="UpperCategoryName">大类别的名称</param>
    /// <param name="UpperStatus">大类别的状态</param>
    /// <returns></returns>
    [WebMethod(Description = "根据参数获得大类别的记录数")]
    public int GetUpperCategoryRows(string strUpperCategoryName, string strUpperStatus)
    {
        return bll.GetUpperCategoryRows(strUpperCategoryName, strUpperStatus);
    }


    /// <summary>
    /// 根据参数获得小类别列表分页数据集
    /// </summary>
    /// <param name="iPageSize">页面记录数</param>
    /// <param name="iPageIndex">当前页</param>
    /// <param name="UpperCategoryName">小类别的名称</param>
    /// <param name="UpperStatus">小类别的状态</param>
    /// <returns>返回小类别数据集</returns>
    [WebMethod(Description = "根据参数把小类别分页")]
    public DataSet GetLowerCategoryForPaging(int iPageSize, int iPageIndex, string strLowerCategoryName, string strLowerStatus)
    {
        return bll.GetLowerCategoryForPaging(iPageSize, iPageIndex, strLowerCategoryName, strLowerStatus);
    }


    /// <summary>
    ///根据参数获得小类别的行数
    /// </summary>
    /// <param name="UpperCategoryName">小类别的名称</param>
    /// <param name="UpperStatus">小类别的状态</param>
    /// <returns></returns>
    [WebMethod(Description = "根据参数获得小类别的记录数")]
    public int GetLowerCategoryRows(string strLowerCategoryName, string strLowerStatus)
    {
        return bll.GetLowerCategoryRows(strLowerCategoryName, strLowerStatus);
    }

    /// <summary>
    /// 根据大类别ID获得其包含的所有的小类别
    /// </summary>
    /// <param name="iPageSize">页面记录数</param>
    /// <param name="iPageIndex">当前页</param>
    /// <param name="strUpperCatetoryID">大类别ID号</param>
    /// <returns>返回大类别包含的所有小类别</returns>
    [WebMethod(Description = "根据大类别ID获得小类别，并分页处理")]
    public DataSet GetLowerCategoryByUpperCategoryIDForPaging(int iPageSize, int iPageIndex, string strUpperCatetoryID)
    {
        return bll.GetLowerCategoryByUpperCategoryIDForPaging(iPageSize, iPageIndex, strUpperCatetoryID);
    }

    /// <summary>
    /// 根据大类别ID号获得其包含的小类别的记录数
    /// </summary>
    /// <param name="strUpperCategoryID">大类别号</param>
    /// <returns>返回大类别包含的所有小类别的记录数</returns>
    [WebMethod(Description = "根据大类别ID获得其包含的小类别记录数")]
    public int GetLowerCategoryByUpperCategoryIDRows(string strUpperCategoryID)
    {
        return bll.GetLowerCategoryByUpperCategoryIDRows(strUpperCategoryID);
    }
}

